package cn.highedu.spring.aop;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * 代理类 代理UserDaoImpl
 * 必须实现和目标类实现同样的结果
 */
@Component
public class UserDaoProxy implements UserDao {
    // 注入目标类对象
    @Autowired
    @Qualifier("userDao") // 指定对象名
    private UserDao userDao;
    @Override
    public int save(int a) {
        System.out.println(new Date() + "--> 保存用户");
        // 调用目标方法
        userDao.save(a);
        return 1;
    }

    @Override
    public void delete() {
        System.out.println(new Date() + "--> 删除用户");
        userDao.delete();
    }

    @Override
    public void update() {
        System.out.println(new Date() + "--> 修改用户");
        userDao.update();
    }

    @Override
    public void get() {
        System.out.println(new Date() + "--> 查询用户");
        userDao.get();
    }
}
